package com.ruoyi.inducement.service;

import com.drew.imaging.ImageProcessingException;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.inducement.domain.BroadcastInfo;
import com.ruoyi.inducement.domain.InducementLog;
import com.ruoyi.inducement.domain.ReturnInducementLog;
import com.ruoyi.inducement.domain.SelectInducementLog;

import java.io.IOException;
import java.text.ParseException;
import java.util.List;

public interface InducementService {

    /**
     * 添加调查信息
     * @param InducementLog
     * @return  返回的是图片路径
     * @throws ImageProcessingException
     * @throws IOException
     * @throws ParseException
     */
    public InducementLog insertInducementLog(InducementLog InducementLog) throws ImageProcessingException, IOException, ParseException;

    /**
     * 查询所有调查信息
     */
    public List<ReturnInducementLog> selectInducementLogAll();

    /**
     * 分页查询所有调查信息
     */
    public TableDataInfo selectInducementLogAllPage(Integer pageNum, Integer pageSize);

    /**
     * 根据条件查询调查信息（图片信息）
     * @return
     */
    public List<ReturnInducementLog> selectInducementLogByCondition(SelectInducementLog selectInducementLog);

    /**
     * 根据条件分页查询调查信息（图片信息）
     * @return
     */
    public TableDataInfo selectInducementLogByConditionPage(SelectInducementLog selectInducementLog,Integer pageNum, Integer pageSize);

    /**
     * 根据条件查询调查人人名
     * @return
     */
    public List<String> selectphotographerByCondition(SelectInducementLog selectInducementLog);

    /**
     * 根据条件查询调查信息（图片信息）
     * 自己用的
     * @return
     */
    public List<ReturnInducementLog> selectInducementLogByConditionMyself(InducementLog InducementLog);

    /**
     * 查询所有的图片信息
     */
    public List<String> selectAllImagePath();


    /**
     * 根据条件返回播报信息
     * @param selectInducementLog
     * @return
     */
    public List<BroadcastInfo> getBroadcastInfo(SelectInducementLog selectInducementLog) throws ParseException;

    /**
     * 手动添加害虫信息
     * @param selectInducementLog
     * @return
     */
    public int updateManualTag(SelectInducementLog selectInducementLog);


}
